Aggregation of widely spread responses

ABSTRACT

A computer-implemented system and method aggregate electronic response messages. A communication server receives a request message from a sender addressed to a plurality of users. The request message contains within it an aggregation indicator indicating that responses to the request message are to be aggregated. A response address is modified within the request message directing a response message from a user to go to a message aggregation server, and the modified message is sent to each of the plurality of users.

BACKGROUND

Disclosed herein is a system and related method for aggregatingelectronic response messages.

In certain situations, a message is sent that solicits responses from alarge number of users. An example of this relates to computer security,where a message related to a product fix is sent to a large number ofcomputer users and a response is solicited relating to whether theproduct fix has been implemented or not. However, receiving a largenumber of direct responses from all of the recipients may result ininefficiency in managing the responses. In these situations, it isdesirable to improve the technical efficiency in collecting andaggregating responses from a plurality of target recipients

SUMMARY

According to aspects disclosed herein, a computer-implemented method foraggregating electronic response messages may be provided. The method maycomprise, using a processor of a communication server, receiving arequest message from a sender addressed to a plurality of users, therequest message containing within the request message an aggregationindicator indicating that responses to the request message are to beaggregated, modifying a response address within the request messagedirecting a response message from a user to go to a message aggregationserver, thereby producing a modified message, and sending the modifiedmessage to each of the plurality of users.

According to other aspects disclosed herein, a communication server inan aggregated messaging system is provided. The system may comprise aprocessor configured to receive a request message from a senderaddressed to a plurality of users, the request message containing withinthe request message an aggregation indicator indicating that responsesto the request message are to be aggregated, modify a response addresswithin the request message directing a response message from a user togo to a message aggregation server, thereby producing a modifiedmessage, send the modified message to each of the plurality of users.

Furthermore, embodiments may take the form of a related computer programproduct, accessible from a computer-usable or computer-readable mediumproviding program code for use, by, or in connection, with a computer orany instruction execution system. For the purpose of this description, acomputer-usable or computer-readable medium may be any apparatus thatmay contain a mechanism for storing, communicating, propagating ortransporting the program for use, by, or in connection, with theinstruction execution system, apparatus, or device.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments are described herein with reference to differentsubject-matter. In particular, some embodiments may be described withreference to methods, whereas other embodiments may be described withreference to apparatuses and systems. However, a person skilled in theart will gather from the above and the following description that,unless otherwise notified, in addition to any combination of featuresbelonging to one type of subject-matter, also any combination betweenfeatures relating to different subject-matter, in particular, betweenfeatures of the methods, and features of the apparatuses and systems,are considered as to be disclosed within this document.

The aspects defined above, and further aspects disclosed herein, areapparent from the examples of one or more embodiments to be describedhereinafter and are explained with reference to the examples of the oneor more embodiments, but to which the invention is not limited. Variousembodiments are described, by way of example only, and with reference tothe following drawings:

FIG. 1 depicts a cloud computing environment according to an embodimentof the present invention.

FIG. 2 depicts abstraction model layers according to an embodiment ofthe present invention.

FIG. 3 is a block diagram of a DPS according to one or more embodimentsdisclosed herein.

FIG. 4A is a block diagram illustrating a system for aggregatingresponses, according to some embodiments.

FIG. 4B is a block diagram illustrating a message format, according tosome embodiments.

FIG. 5 is a flow chart illustrating a process for aggregating responses,according to some embodiments.

FIG. 6 is a flowchart illustrating a process for setting an aggregationpolicy, according to some embodiments.

FIG. 7 is a flowchart illustrating a manager policy aggregation flowusing hidden communications, according to some embodiments.

FIG. 8 is a flowchart illustrating the actual aggregation for a managerpolicy, according to some embodiments.

FIG. 9 is a flowchart illustrating a process for a geographicaggregation policy.

DETAILED DESCRIPTION

In order to allow efficient aggregation of responses to a requestmessage, such as a message soliciting action for a computer or networksecurity-related issue, it may be beneficial to allow the sender of amessage indicate that an aggregated response is desired and for thatindication to be contained within the message itself. Such aggregationis particularly desirable when large numbers of recipients are involved.The message may be in the form of a mail message, chat (e.g., IRC),instant message, or any other form of electronic communication.

A special handler may be added to the message server that looks for theaggregation indicator in the message, and, when found, alters themessage prior to sending it on to the designated recipients. Thealteration may modify the message and direct, e.g., by modifying areply-to field, the response to go to a particular message aggregationserver, which may instantiate an aggregator for a particularcommunication thread and collect the responses. Based on an aggregationrule, the responses may be parsed and a summary created based on theaggregated responses. Such an aggregated response summary may be sent tothe original sender of the request message, thereby reducing asignificant amount of work and communications on the part of the sender.

The following acronyms may be used below:

API application program interfaceARM advanced RISC machineCD-ROM compact disc ROMCMS content management systemCoD capacity on demandCPU central processing unitCUoD capacity upgrade on demandDPS data processing systemDVD digital versatile diskEPROM erasable programmable read-only memoryFPGA field-programmable gate arraysHA high availabilityIaaS infrastructure as a serviceI/O input/outputIPL initial program loadISP Internet service providerISA instruction-set-architectureLAN local-area networkLPAR logical partitionLTA logging/tracking/auditPaaS platform as a servicePDA personal digital assistantPLA programmable logic arraysRAM random access memoryRISC reduced instruction set computerROM read-only memorySaaS software as a serviceSLA service level agreementSOI search optimization serviceSRAM static random access memoryWAN wide-area network

Cloud Computing

It is to be understood that although this disclosure includes a detaileddescription on cloud computing, implementation of the teachings recitedherein are not limited to a cloud computing environment. Rather,embodiments of the present invention are capable of being implemented inconjunction with any other type of computing environment now known orlater developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g., networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported, providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based e-mail).The consumer does not manage or control the underlying cloudinfrastructure including network, servers, operating systems, storage,or even individual application capabilities, with the possible exceptionof limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure that includes anetwork of interconnected nodes.

Referring now to FIG. 1, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 includes one or morecloud computing nodes 10 with which local computing devices used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 10 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 54A-N shownin FIG. 1 are intended to be illustrative only and that computing nodes10 and cloud computing environment 50 can communicate with any type ofcomputerized device over any type of network and/or network addressableconnection (e.g., using a web browser).

Referring now to FIG. 2, a set of functional abstraction layers providedby cloud computing environment 50 (FIG. 1) is shown. It should beunderstood in advance that the components, layers, and functions shownin FIG. 2 are intended to be illustrative only and embodiments of theinvention are not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include: mainframes 61; RISC(Reduced Instruction Set Computer) architecture based servers 62;servers 63; blade servers 64; storage devices 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow. Resource provisioning 81 provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricing 82provide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may include applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and mobile desktop 96.

Data Processing System

FIG. 3 is a block diagram of an example DPS according to one or moreembodiments. The DPS may be used as a cloud computing node 10. In thisillustrative example, the DPS 100 may include communications bus 102,which may provide communications between a processor unit 104, a memory106, persistent storage 108, a communications unit 110, an I/O unit 112,and a display 114.

The processor unit 104 serves to execute instructions for software thatmay be loaded into the memory 106. The processor unit 104 may be anumber of processors, a multi-core processor, or some other type ofprocessor, depending on the particular implementation. A number, as usedherein with reference to an item, means one or more items. Further, theprocessor unit 104 may be implemented using a number of heterogeneousprocessor systems in which a main processor is present with secondaryprocessors on a single chip. As another illustrative example, theprocessor unit 104 may be a symmetric multi-processor system containingmultiple processors of the same type.

The memory 106 and persistent storage 108 are examples of storagedevices 116. A storage device may be any piece of hardware that iscapable of storing information, such as, for example without limitation,data, program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. The memory 106, inthese examples, may be, for example, a random access memory or any othersuitable volatile or non-volatile storage device. The persistent storage108 may take various forms depending on the particular implementation.

For example, the persistent storage 108 may contain one or morecomponents or devices. For example, the persistent storage 108 may be ahard drive, a flash memory, a rewritable optical disk, a rewritablemagnetic tape, or some combination of the above. The media used by thepersistent storage 108 also may be removable. For example, a removablehard drive may be used for the persistent storage 108.

The communications unit 110 in these examples may provide forcommunications with other DPSs or devices. In these examples, thecommunications unit 110 is a network interface card. The communicationsunit 110 may provide communications through the use of either or bothphysical and wireless communications links.

The input/output unit 112 may allow for input and output of data withother devices that may be connected to the DPS 100. For example, theinput/output unit 112 may provide a connection for user input through akeyboard, a mouse, and/or some other suitable input device. Further, theinput/output unit 112 may send output to a printer. The display 114 mayprovide a mechanism to display information to a user.

Instructions for the operating system, applications and/or programs maybe located in the storage devices 116, which are in communication withthe processor unit 104 through the communications bus 102. In theseillustrative examples, the instructions are in a functional form on thepersistent storage 108. These instructions may be loaded into the memory106 for execution by the processor unit 104. The processes of thedifferent embodiments may be performed by the processor unit 104 usingcomputer implemented instructions, which may be located in a memory,such as the memory 106.

These instructions are referred to as program code, computer usableprogram code, or computer readable program code that may be read andexecuted by a processor in the processor unit 104. The program code inthe different embodiments may be embodied on different physical ortangible computer readable media, such as the memory 106 or thepersistent storage 108.

The program code 118 may be located in a functional form on the computerreadable media 120 that is selectively removable and may be loaded ontoor transferred to the DPS 100 for execution by the processor unit 104.The program code 118 and computer readable media 120 may form a computerprogram product 122 in these examples. In one example, the computerreadable media 120 may be computer readable storage media 124 orcomputer readable signal media 126. Computer readable storage media 124may include, for example, an optical or magnetic disk that is insertedor placed into a drive or other device that is part of the persistentstorage 108 for transfer onto a storage device, such as a hard drive,that is part of the persistent storage 108. The computer readablestorage media 124 also may take the form of a persistent storage, suchas a hard drive, a thumb drive, or a flash memory, that is connected tothe DPS 100. In some instances, the computer readable storage media 124may not be removable from the DPS 100.

Alternatively, the program code 118 may be transferred to the DPS 100using the computer readable signal media 126. The computer readablesignal media 126 may be, for example, a propagated data signalcontaining the program code 118. For example, the computer readablesignal media 126 may be an electromagnetic signal, an optical signal,and/or any other suitable type of signal. These signals may betransmitted over communications links, such as wireless communicationslinks, optical fiber cable, coaxial cable, a wire, and/or any othersuitable type of communications link. In other words, the communicationslink and/or the connection may be physical or wireless in theillustrative examples.

In some illustrative embodiments, the program code 118 may be downloadedover a network to the persistent storage 108 from another device or DPSthrough the computer readable signal media 126 for use within the DPS100. For instance, program code stored in a computer readable storagemedium in a server DPS may be downloaded over a network from the serverto the DPS 100. The DPS providing the program code 118 may be a servercomputer, a client computer, or some other device capable of storing andtransmitting the program code 118.

The different components illustrated for the DPS 100 are not meant toprovide architectural limitations to the manner in which differentembodiments may be implemented. The different illustrative embodimentsmay be implemented in a DPS including components in addition to or inplace of those illustrated for the DPS 100. Other components shown inFIG. 1 may be varied from the illustrative examples shown.

Machine Learning

Certain aspects described below may make use of machine learning,artificial intelligence, deep learning, neural networks, and the like.Machine learning algorithms may include, but not limited to, decisiontree learning, association rule learning, artificial neural networks,deep learning, inductive logic programming, support vector machines,clustering, Bayesian networks, reinforcement learning, representationlearning, similarity/metric training, sparse dictionary learning,genetic algorithms, rule-based learning, and/or other machine learningtechniques.

For example, the machine learning algorithms may utilize one or more ofthe following example techniques: K-nearest neighbor (KNN), learningvector quantization (LVQ), self-organizing map (SOM), logisticregression, ordinary least squares regression (OLSR), linear regression,stepwise regression, multivariate adaptive regression spline (MARS),ridge regression, least absolute shrinkage and selection operator(LASSO), elastic net, least-angle regression (LARS), probabilisticclassifier, naïve Bayes classifier, binary classifier, linearclassifier, hierarchical classifier, mayonical correlation analysis(CCA), factor analysis, independent component analysis (ICA), lineardiscriminant analysis (LDA), multidimensional scaling (MDS),non-negative metric factorization (NMF), partial least squaresregression (PLSR), principal component analysis (PCA), principalcomponent regression (PCR), Sammon mapping, t-distributed stochasticneighbor embedding (t-SNE), bootstrap aggregating, ensemble averaging,gradient boosted decision tree (GBRT), gradient boosting machine (GBM),inductive bias algorithms, Q-learning, state-action-reward-state-action(SARSA), temporal difference (TD) learning, apriori algorithms,equivalence class transformation (ECLAT) algorithms, Gaussian processregression, gene expression programming, group method of data handling(GMDH), inductive logic programming, instance-based learning, logisticmodel trees, information fuzzy networks (IFN), hidden Markov models,Gaussian naïve Bayes, multinomial naïve Bayes, averaged one-dependenceestimators (AODE), Bayesian network (BN), classification and regressiontree (CART), chi-squared automatic interaction detection (CHAID),expectation-maximization algorithm, feedforward neural networks, logiclearning machine, self-organizing map, single-linkage clustering, fuzzyclustering, hierarchical clustering, Boltzmann machines, convolutionalneural networks, recurrent neural networks, hierarchical temporal memory(HTM), and/or other machine learning techniques.

The output of machine learning algorithms may include one or more of, apredicted period of usage (e.g., a predicted expiration), a predictedarea of usage (e.g., a predicted geofence), a predicted amount of usage(e.g., a predicted network speed, download volume, upload volume, etc.),a predicted type of usage (e.g., email, streaming, web browsing,application usage, rate of data upload/download, etc.), and/or otherpredictions.

Aggregation of Responses

Managing information related to certain issues, such as computersecurity issues, requires managing information received from differentinformation sources, in different formats, and with varying frequency.In some instances, where this information requires action (e.g., a patchto software and the like), a severity level may be associated with theinformation. Information sources may include knowledge bases, productinformation, forums, external web sites, incident reports, e-mail, andthe like. Additionally, the information sources may provide informationin a structured or unstructured format, and may include, e.g., datacoming from databases, email, and/or web-site pages. How thisinformation is handled may be based on various factors. Importantfactors for consideration in security issues may include the severity ofthe incident, its business impact, and the role of the requester foraction related to the security incident.

Security-related issues may be overseen by a Security Rep. A SecurityRep's responsibilities may include: 1) receiving a security incidentalert from a Sender; 2) understanding the content for the incidentalert, and then performing the right actions according the companypolicies for managing the specific incident; 3) looking for the peoplein her/his team organization to determine if they are affected by theincident; 4) sending a Request to her/his contact list to check theimpact on the specific component in their solution, where each teamfocal point checks the incident against company product policy, history,and current data, and Responds to the Request as to whether or not theirsolution/products are affected by the incident and the reason why or whynot: a) in case they are affected, they need to apply a recommendedaction in the required time to solve the problem, and communicate theiraction plan in a Response back to the Requestor; b) in case they are notimpacted, they will send a Response that may be in the form of a simplecommunication, e.g., a Response that the proposed solution does notinvolve or contain the specific component related to the Request; 5)gathering each Response and aggregating them, checking information forimpact, geography, team, product, release, version etc., andaction/timing to address the issue; and 6) summarizing and sending backa final response to the Sender of the security incident alert.

In a simplistic use case, a sender may determine that an old version ofa particular word processor has a potential security flaw, and that apatch should be applied for computers running this old version. An emailmay be sent to the Security Rep along with a patch file and instructionsfor installing the patch. The Security Rep forwards the email along tovarious managers in the organization who then each forward the messageon to their subordinates with instructions that they should apply thepatch and communicate back to the manager whether the patch was appliedor not, and if not, provide a reasons for not applying it (e.g., a newerversion of the word processor is installed on their system, etc.). Oncethe manager has received the feedback from his subordinates, heaggregates the responses and reports back to either the Security Rep orthe sender. The sequence of actions above may easily become complexsince modern systems may be made of several components that may beimpacted, and it may be difficult and time consuming to ensure that allnecessary actions have been taken by everyone.

A system and method described herein provide a technical solution ofincreasing the effectiveness and efficiency to the technical problem ofmanaging multiple responses to a request by using an automatedaggregator that is instantiated based on information within the messageor metadata associated with it. The aggregator may be a grouping objectthat: implements policies (rules, instructions, and the like) forgrouping received answers, and sends back the answers to the sender inan aggregated form. The aggregator may utilize natural languageprocessing and machine learning to: determine a final impact for thesolution; predict a final status and changes over time; and summarizefinal response for the whole solution.

FIG. 4A is a block diagram that illustrates some example embodiments ofa system 400. The system 400 includes a sender 402 who sends requests(also called “request messages”) and receives aggregated responses tothem. A request is a special type of message (see FIG. 4B 450) having anaggregation indicator (e.g., a tag or parameter value) within themessage or in metadata associated with the message indicating that it isof this special type. In some embodiments, the request may be in theform of an email--when so, optional fields in headers, such as thosedescribed in the Internet Message Format Network Working Group RFC 2822,published April 2001 (available athttps://www.ietf.org/rfc/rfc2822.txt), may be utilized to indicate, via,e.g., a flag, that the request is this special type of message and maybe treated as described herein. This request may be directed at aplurality of recipients 410-1, 410-2 . . . 410-n, (collectively orrepresentatively 410). Receipt of the message by the recipients 410 maybe via a recipient communications server 407, such as an email server,and a recipient communication client 409, such as an email client.

This request (alternately, message) may contain information that may beof use to the recipients 410 to address an issue, such as the patch andinstallation instructions described in the use case above. In someembodiments, the sender 402 is the one who may set the flag indicatingthat this is the special type of message and that aggregation should beemployed for receiving responses. This may be done, for example, by thesender 402 interacting with a control element on a user interface of anapplication on their sending device. By way of example, the sender'scommunication client 403 (or server 415) may have a selection element,such as a button, checkbox, or the like that the sender 402 can selectto direct the email client to set the flag. Although the request messagedescribed in detail in the user case herein relates to security and/orcomputer/network issues, the applicability of this concept extends toany area in which a request is sent to a plurality of recipients andresponses to the request are expected. In some embodiments, theselection element is presented to the user when a predefined number ofrecipients are named in the communication (see process 600, discussedbelow).

The message may be sent to a communication server 415, which may be runon a device associated with the sender 402, such as a DPS 100 or aserver associated with the sender's Internet Service Provider, such as amail server. The communication server 415 may comprise at least twoparts: a policy handler 420, and a normal communications handler 425.Although these parts are shown as both being run within thecommunication server 415, their functionality may be split acrossmultiple hardware devices. If the message does not have the flag setthat indicates it should be handled as a special message, then themessage may be routed to the normal communications handler 425, such asa traditional mail server, and be distributed in a conventional manner.However, if the message has the flag set, then it may be initiallyintercepted by the policy handler 420 prior to being set to the normalcommunications handler 425.

The policy handler 420 may have access to policy information 424 thatallows it to work with the relationships between recipients 410 andaggregating entities 430. This policy information 424 may be located ina database that with or is separate from the sender communication server415 and policy handler 420. The policy handler 420 may utilize therelationship knowledge to modify “reply-to” addresses identifying therespective message aggregation server 430 that is to be used for therecipient 410 response.

In some embodiments described herein, the policy handler may communicatewith the message aggregation server(s) 430 to instantiate thecommunications thread 432 containing the answer collector/builder object435 at the time it utilizes its relationship knowledge to modify the“reply-to” address. In other embodiments described herein, theinstantiation of the communications thread 432 containing the answercollector/builder object 435 may be instantiated by the recipient'scommunication client 409 or server 407 in response to a communicationsent to the relevant message aggregation server 430. This may be in theform of a dedicated instantiation message that identifies relevantinformation related to the communication thread 432, or it may be inresponse to a first responsive communication sent to the messageaggregation server 430. In either case, such emails (i.e., the dedicatedinstantiation message or the messages to be aggregated) are not actuallysent through to the recipients, but rather are used for the purpose ofinitiating aggregation and aggregating the recipient responses.

The policy handler 420, upon intercepting the flagged communication, maydetermine an aggregation policy to be applied. The aggregation policymay be set by the sender in a manner similar to that used to set theflag, and included along with the special handling flag described above,it may be set based on some predefined criteria, or set based on rulesusing or related to message content. In some embodiments, theaggregation policy may include the following types: aggregation byteam/manager, aggregation by geographic region, aggregation by time zone(a special case of aggregation by geographic region), or aggregation bysome other attribute. The policy handler 420 may thus be broken downinto the following sub-handlers: by manager (team) 422 a, by geography(including time zone) 422 b, or by other attribute 422 c. The geographymay be defined by one or more bounded geographical regions or areas thatdo not have to be contiguous. The message metadata, in addition toincluding the flag and policy type, may further include policyparameters, which may differ by type, and/or by communication content,and may be set by the sender 402 or stored with predefined policies inthe policy information 424 within the policy handler 420. Policyinformation 424 may further comprise information that relates individualrecipients 410 to particular managers, geographic regions, time zones,and/or other organizational elements.

FIG. 4A further illustrates servers (430 a, 430 b, and 430 c, orcollectively/or representatively a “message aggregation server” 430)that may be used to handle the different policy types. The messageaggregation server 430 may be any type of DPS 100, including a networkelement. The policy type indicator may thus dictate a messageaggregation server address that is to be used by the recipient user whenresponding, and, for example, may be provided in the reply-to addressprior to the message being sent to the user. When the policy type isdetermined by the policy handler 420 to be by manager 422 a, a manager(or team) server 430 a may be utilized. Similarly, when the policy typeis determined by the policy handler 420 to be by geography 422 b, ageography server 430 b may be utilized. A policy type of time zone maybe utilized as well, and this may be handled as a special case ofgeography in which the time zones comprise specific bounded geographicalregions. Other attributes for aggregation may be used as well, asillustrated by the policy type being other 422 c and utilizing anotherserver 430 c.

FIG. 4B is a block diagram of a special message 450 according to someembodiments, and is broken down into a message header 460 containing themessage metadata described herein, and the message payload 470. Theheader 460 may contain, according to some embodiments, the flag 462, thepolicy type 464, and the policy parameters 466. The policy parameters466 may include variables such as an aggregation count, i.e., how manyresponsive messages in a thread must be collected before being combinedand returned to the sender 402. A flag 462 does not necessarily have tobe a separate data entity, and may be complemented, e.g., by a policytype 464 indicating “none” when no aggregation system is to be used.

Returning to FIG. 4A, use of the manager server 430 a is describedbelow. Use of the geography server 430 b and other server(s) 430 c arenot expressly described, but are structured and function similarly tothe manager server 430 a. The manager server 430 a may have anaggregation object instantiated for a particular communication thread,such as communication thread 1 432-1. Communication thread 1 432-1 maybe determined based on an attribute(s) of the message 450, such as asubject line of an email, sender, receiver, and/or date and time. Allmessages 450 meeting a particular thread criteria may be associated withthat particular communication thread 432-1.

The aggregation object (e.g., the communication thread 1 432-1) may beinstantiated upon (triggered by) receipt of the tagged message from thesender by the policy handler 420, or it may be instantiated upon(triggered by) receipt of the first reply to the tagged message from therecipient 410. In the latter case, it may not be necessary for thecommunication server 415 to interact directly with the manager (orother) server 430 a upon receipt of the message 450 from the sender402—all that the policy handler 420 needs to do in this instance is toforward the message 450 on to the user, but to provide a reply-toaddress so that the user response will get to the appropriate messageaggregation server 430, which may be done by replacing an email replyaddress directed to a mail server on the message aggregation server. Inthis latter case, information about the policy, thread, recipients, etc.may need to be communicated to the message aggregation server 430 insome manner. In the former case, the policy handler 420 may communicatethis information about the policy, thread, recipients, etc. to themessage aggregation server 430. A new aggregation object (e.g.,communication thread 2 432-2) may be created for each separatecommunication thread. In the following a single aggregation object as acommunication thread (generically 432) is discussed. Although differentservers 430 a, 430 b, and 430 c are described above, this distinction isfunctional only, and all of these servers may be run on a same machineor server platform

The communication thread 432 may comprise an answer collector/builderobject 435 a. In some embodiments, this object 435 a may collectresponses received from recipients 410 associated with a particularmanager until a threshold number is reached, which may be specified inthe policy parameters 466. When the threshold is reached, the aggregatedresponses may be combined, and a combined or aggregated response may bereported back to the sender 402. In other embodiments, each response isaggregated upon receipt, but the aggregated response is not sent untilthe threshold number is reached. The responses or “in-work” aggregationmay be stored in an aggregated answers 440 a of the communication thread432, and an answer transmitter 445 a may be used to transmit theaggregated response/answer back to the sender 402. The communicationthread 432 should know how many total answers it is expecting based onthe number of users the original request was sent to. In someembodiments, the aggregated response is not sent to the sender 402 untilall or some predefined portion of expected responses are received.

Using the above-defined use case, the sender sends the word processorpatch request to the twenty members of a management team under manager A(or any manager). The aggregator object/communication thread 1 432-1 maybe created either when the patch request message is sent out by thecommunication client 415 or when the first response to the request isreceived. A threshold is set that the management server should aggregateanswers in groups of ten. Thus, when the first ten responses arereceived, the answer collector object 435 a may be invoked. It may parsethe responses, using, e.g., NLP, and determine that eight of the usersinstalled the patch, and two of the users did not, since they were notrunning a software version requiring the patch. The answer collectorobject 435 a thus summarizes/aggregates these ten messages into a singlesummarizing message and returns it to the sender 402 using the answertransmitter 445 a. The process is repeated for the final batch of tenresponses received.

The policy handler 420 may have detailed information about managers andtheir respective teams as well as geographic areas, including timezones. In order to ensure that the aggregation policies are implemented,when so designated by the sender 402, the policy manager 420 may alter a“reply-to” field of the message so that it points to the manager server430 a or geographic server 430 b. Thus, when the recipient 410 repliesto the message, the response is directed to the appropriate server 430for aggregation, instead of back to the sender 402 directly.

FIG. 5 is a flowchart illustrating an example process 500, according tosome embodiments, by which the system 400 may operate. As noted above,the sender 402 may, at operation 505 send a request in a form of amessage 450, such as an email, that has been tagged 462 for anaggregated response. The request message 450 may comprise an indicatoras to the policy type 464, and may further comprise policy parameters orattributes 466. The policy handler 420 may instantiate the policy andcreate the collector aggregator object dependent on the policy type.When the policy type 464 is by geography 422 b, in operation 510, aninstance of the policy aggregator/collector object may be created, inoperation 530, on the geography server 430 b. When the policy type 464is by manager/team 422 a, in operation 515, an instance of the policyaggregator/collector object may be created, in operation 535, on themanager server 430 a. Finally, when the policy type 464 is some othertype 422 c, in operation 520, an instance of the policyaggregator/collector object may be created, in operation 540, on theother server 430 c.

The following operations of the process 500 are described, by way ofexample, for the by geography 422 b policy type, but correspondingprocesses exist for the handling of other policy types as well. Inoperation 550, the request message 450 is received by the users (thereceived messages RCP-1, RCP-2, RCP-N corresponding to recipients 410-1,410-2, 410-n, respectively). The recipients 410 may then send, inoperation 555, their own respective responses/answers to be received, inoperation 560, by the respective response or answer collector 435 a. Asdiscussed above, the response, in some embodiments, may be directed toan address placed into a reply-to field of an email message by thepolicy handler 420. In operation 565, the response/answer collector 435a may build an aggregated response (or may set the responses aside forfuture aggregation).

In operation 570, a test may be made to determine if a characteristicfor all messages received and associated with the communication meets amessage aggregation rule. For example, the characteristic for allmessages received may be a received message count associated with thethread, and the message aggregation rule may be that the number ofresponses received meets some threshold value, e.g., one stored in thepolicy parameters 466. The message aggregation rule may be broad,however, and may include things like an expiration of a periodic timer,a communication received indicating that the message aggregation server430 is to aggregate all of its currently accumulated responses, etc. Ifthe response threshold has not been met (570: NO), then no aggregatedresponse is sent back to the sender 402. Otherwise (570: YES), inoperation 575, an aggregated response is sent back to the sender. In oneembodiment, an aggregation threshold of less than the threshold amountmay trigger the aggregation and subsequent sending of the aggregatedresponse if certain criteria are met or according to an event. In someembodiments, if a total number of responses is expected, e.g.,forty-three, and the aggregation threshold is set for ten, thenaggregations for four full sets of ten may be created, along with anaggregation for the last remaining three responses. In some embodiments,the sender 402 may sent out a request, in the form of, e.g., a message,requesting an override on the threshold and indicating that anyresponses, regardless of the accumulated number, should be promptlyaggregated and the aggregated response returned to the sender 402.

The above description details the process 500 occurring in a single-tierhierarchy. However, this process 500 may be easily extended tomulti-tier hierarchies, e.g., in a recursive manner. To achieve this,each communication server 415 may evaluate if the next routing/splittingis done based on the specified (in the by geography policy type)geography. Routing is usually network based, so, for example, an emailserver pluggable component, such as the policy handler 420, may beprovided to detect if the policy type 464 is set or if the flag 462 isset and if routing/splitting is occurring based on geographies, and, ifso, a collector for the communication thread 432 may be instantiated.The server may be consequently added to available email headers. Whenthe email arrives to the recipient, on the last server, the reply-tofield may be set to the first server added in the list and a specialcollector message may be sent to it to provide the number of users theanswer/response is supposed to arrive for that geographical area. Thus,when multiple tiers exist, the message aggregation server 430 may sendthe aggregated response directly or indirectly (e.g., via a higher-levelmessage aggregation server) back to the sender 402.

For example, the recipient 410 described above may belong to ageographic region with multiple users below. In this way, an aggregatorat one level above the bottom-most recipient 410 may aggregate ten userresponses before reporting to a next higher level, and the next higherlevel may aggregate ten aggregated responses (for a total of one hundreduser responses) before reporting to a next higher level, and so on. Inthis way, control of the aggregation may be extended across a multi-tierhierarchy. In this approach, the policy types across tiers may all bethe same, or may differ from one another. The tiering information may becontained within the header 460 of the message 450.

Once the expected number of responses to a request are received, whichmay be known based on the number of recipients targeted in thecommunication, the aggregator object, such as the communications thread432, may be terminated. The termination may be triggered by any activityassociated with receipt of the last of the expected number of responses.

FIG. 6 is a flowchart illustrating an example process 600 according tosome embodiments of setting an aggregation policy at submission timethat may be implemented by the sender's device. At operation 605, at atime prior to sending the communications, such as an email, in someembodiments, a determination may be made as to how many recipients areto be reached—communication aliases may be resolved in order to get anaccurate count of recipients. If the number of recipients is consideredlow (605: N), based on a predefined threshold (e.g., one-hundred orless), then the communication may be sent in operation 625. Otherwise,(605: Y), in operation 610, an aggregation policy input element, such asa display panel or other user interface element, may be presented to thesender to allow the sender to select the aggregation policy. Inoperation 615, the sender's device may receive an aggregation policyvalue representing the sender selection of the aggregation policy, suchas “by manager”, “by geography”, “by time zone”, or some otheraggregation policy. In operation 620, the aggregation policy value maybe provided to metadata associated with the communication, such as, insome embodiments, an optional field in the email headers, for example,those identified by a known Internet message format specification.

FIG. 7 is a flowchart illustrating an example process 700, according tosome embodiments, of a manager policy aggregation flow (when theaggregation policy has been selected by the sender as “by manager”). Insome implementations, the instantiation of the communications thread 432answer collector/builder object 435 a may be instantiated by the hiddencommunication that contains the necessary information to instantiate thebuilder object 435 a. In operation 705, the communication previouslymarked with the manager aggregation policy value reaches each recipient410. In operation 710, it may be determined whether the aggregationpolicy value in the communication metadata is “by manager”, i.e., thecommunication client 409 checks the communications metadata value to seeif the manager aggregation policy value is present. If not (710: N), thereply-to field may be left blank, and the process 700 ends. If theaggregation policy value is “by manager” (710: Y), then in operation715, the client communication server 407 may send to the recipient'smanager server 430 a a hidden (alternately, “fake”) communication thatwill never reach the manager (the person) itself, but that is utilizedas a part of the aggregation process. This hidden message may be taggedas such via, e.g., a communication header, subject line, or othermetadata associated with the communication that is recognizable by thereceiving communication server as being such.

In operation 720, a check is made to see if this hidden communication isthe first that is related to this thread. If so (720: Y), a collectorobject is instantiated on the manager's server and the sendercommunication is stored, with the process continuing at operation 730.If not (720: N), i.e., the hidden communication is not the first that isrelated to this thread, a collector object counter is incremented, whichserves the purpose of letting the specific collector know how manyresponses it is supposed to receive in total for that thread, and theprocess continues at operation 730. On the recipient side, eachcommunication replying to that thread may have the reply-to field set tothe manager's communication address so that responses are directed to besent to the manager. In some implementations, the hidden communicationsmay be separate from the actual responses from the recipient 410—inother implementations, these may be one and the same. In someimplementations, if the policy handler 420 has adequate informationabout the appropriate manager server(s) 430 a, it may instantiate thecommunication thread 432 and its answer collector/builder object 435.

FIG. 8 is a flowchart illustrating operation of the manager policyaggregation flow process 800 on the manager's server. In this process800, in operation 805, the defined collectors inspect the receivedemails while they flow and identify the thread and assigned collectors.These received emails are not forwarded to the manager. In operation810, a determination is made as to whether the reply communications meetsome predefined threshold, such as 75% of the expected emails. If thispredefined threshold is not met (810: N), then the process 800 ends.Otherwise (810: Y), an aggregated response is formulated and sent to theinitial sender. Information required from the processing, such asspecifying the aggregation policy, marking an email as hidden, conveyingthe sender to the collector, stopping sending of the response to beaggregated to the manager may be controlled through specific metadatavalues, such as values in optional field headers.

FIG. 9 is a flowchart illustrating a process 900, according to someembodiments, of a geographic aggregation policy flow (when theaggregation policy has been selected by the sender as “by geography”).In some embodiments, the instantiation of the communications thread 432answer collector/builder object (corresponding to 435 a (i.e., “(b)”)not shown in the drawing)) may be instantiated by the policy handler 420that contains the necessary information to instantiate the builderobject on the geography server 430 b. Thus, instantiation of the answercollector/builder object may take place based on activities on thesender communication server 415, or in the policy handler 420, asopposed to on the recipient's communication server 407 or client 409, asmay be done with the “by manager” policy.

In operation 905, when the communication that has been previously markedwith the geographic aggregation policy reaches each sender communicationserver 415 (or other downstream communication server), it may beevaluated to determine if the next routing or splitting of thecommunication is geographically based. If so (905: Y), then, inoperation 910, this evaluating server may be added as metadata to thecommunication, e.g., in some embodiments, in a dedicated option fieldheader in an email, and, in operation 915, an aggregation collector maybe instantiated for this thread, with execution continuing at operation920. In operation 920, the communication flows to the next server. Inoperation 925, if this is not the last server (925: N), then operation920 is repeated—otherwise (925: Y), in operation 930, the communicationmay be delivered. At the recipient side, in operation 935, a processingsimilar to process 700 may be performed, but this time the server forwhich the collector is instantiated is the one previously identified.The difference may thus be when the collector is initiated, i.e., by thesender communication server 415 or one of the downstream branch sendercommunication servers. Process 800 may also apply to this server. Thetime zone policy aggregation may be based on the same principles as thegeographic area aggregation, since a time zone may readily be translatedinto geographical areas.

The roles of sender 402 and recipient 410 along with their respectivecommunication clients 403, 409 and communication servers 415, 407 arenot fixed, and may be reversed. In other words, a recipient 410 of onecommunication thread may be a sender 402 in another. In this way, anyentity may be both a sender and receiver, possibly simultaneously, withdifferent communication threads in order to maximize flexibility inutilizing aggregated communications.

Computer Program Product

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

1. A computer-implemented method for aggregating electronic responsemessages, the method comprising: using a processor of a sendercommunication server, receiving a request message from a senderaddressed to a plurality of users, the request message containing withinthe request message an aggregation indicator indicating that responsesto the request message are to be aggregated; modifying a responseaddress within the request message directing a response message from auser to go to a message aggregation server, thereby producing a modifiedmessage; and sending the modified message to each of the plurality ofusers.
 2. The method of claim 1, wherein the request message is an emailmessage and the aggregation indicator is a predefined field in a headerof the email.
 3. The method of claim 1, wherein: the request messagereceived from the sender comprises a policy type indicator selected fromthe group consisting of a first policy type indicator and a secondpolicy type indicator; responsive to the policy type indicator being thefirst policy type indicator, providing an address of a first messageaggregation server as the response address; and responsive to the policytype indicator being the second policy type indicator, providing anaddress of a second message aggregation server as the response address.4. The method of claim 3, wherein: the first policy type indicator is aby manager policy type, and the first message aggregation server is amanager aggregation server; and the second policy type indicator is a bygeography policy type, and the second message aggregation server is ageography aggregation server.
 5. The method of claim 1, furthercomprising sending policy, thread, and recipient information to amessage aggregation server that is indicated by a policy type indicatorwithin the received message.
 6. The method of claim 1, wherein therequest message comprises data related to actions to address a computeror network issue.
 7. The method of claim 1, further comprising usingpolicy data to associate the users with a criteria selected from thegroup consisting of their managers and their geographic areas.
 8. Themethod of claim 1, further comprising: using a message aggregationserver: instantiating a message aggregator; receiving a response messageassociated with a communication thread; determining that acharacteristic for all messages received and associated with thecommunication thread meets a message aggregation rule; based on thecharacteristic meeting the message aggregation rule, sending anaggregated response directly or indirectly to the sender.
 9. The methodof claim 8, wherein the instantiating is triggered by receipt of acommunication related to the communication thread received by themessage aggregation server from an entity selected from the groupconsisting of: the sender communication server and the recipientcommunication server.
 10. The method of claim 8, further comprisingdetermining the communication thread based on an element selected fromthe group consisting of a message subject, sender, receiver, date, andtime.
 11. The method of claim 8, wherein the characteristic is a messagecount and message aggregation rules is the message count exceeding athreshold number of messages.
 12. The method of claim 8, wherein themessage aggregator instantiation is terminated triggered by a lastexpected message in the communication thread being received.
 13. Themethod of claim 8, further comprising creating the aggregated responseby parsing contents of all messages received and summarizing them. 14.The method of claim 13, wherein the parsing of the contents utilizesnatural language processing.
 15. The method of claim 1, furthercomprising: using a processor of a sender device: receiving a userindication that a request message is to receive aggregated replies;setting the aggregation indicator within the request message; andsending the request message to the communication server.
 16. Acommunication server comprising: a processor configured to: receive arequest message from a sender addressed to a plurality of users, therequest message containing within the request message an aggregationindicator indicating that responses to the request message are to beaggregated; modify a response address within the request messagedirecting a response message from a user to go to a message aggregationserver, thereby producing a modified message; and send the modifiedmessage to each of the plurality of users.
 17. The system according toclaim 16, wherein: the request message received from the sendercomprises a policy type indicator selected from the group consisting ofa first policy type indicator and a second policy type indicator; theprocessor is further configured to: responsive to the policy typeindicator being the first policy type indicator, provide an address of afirst message aggregation server as the response address; and responsiveto the policy type indicator being the second policy type indicator,provide an address of a second message aggregation server as theresponse address.
 18. The system according to claim 17, wherein: thefirst policy type indicator is a by manager policy type, and the firstmessage aggregation server is a manager aggregation server; and thesecond policy type indicator is a by geography policy type, and thesecond message aggregation server is a geography aggregation server. 19.A computer program product for combining search indexes of a searchservice, the computer program product comprising a computer readablestorage medium having computer-readable program code embodied therewithto, when executed on a processor: receive a request message from asender addressed to a plurality of users, the request message containingwithin the request message an aggregation indicator indicating thatresponses to the request message are to be aggregated; modify a responseaddress within the request message directing a response message from auser to go to a message aggregation server, thereby producing a modifiedmessage; and send the modified message to each of the plurality ofusers.
 20. The computer program product of claim 19, wherein: therequest message received from the sender comprises a policy typeindicator selected from the group consisting of a first policy typeindicator and a second policy type indicator; and the computer-readableprogram code is further configured to, when executed on a processor:responsive to the policy type indicator being the first policy typeindicator, provide an address of a first message aggregation server asthe response address; and responsive to the policy type indicator beingthe second policy type indicator, provide an address of a second messageaggregation server as the response address.